| Piemērs bash skriptam, ar kura palīdzību iespējams novienādot attēlu izmērus.
# Lasa visus attelus no patreizējās direktorijas un pārtais tos vienādā
# izmērā samazinot/palielinot un pievienojot malas.
# Versija: 2019.02.01 19:55
# Autors: Kārlis Kalviškis
# Licence: GPL
# Izmanto GraphicsMagick
#### Maināmie lielumi #################################################
ATTELI=*.jpg
KUR_LIKT=gala_atteli
TMP_DIR=tmp
#AUGSTUMU_VAJAG=1365
#AUGSTUMU_VAJAG=1080
AUGSTUMU_VAJAG=720
#AUGSTUMU_VAJAG=540
## Platumi aprēķināti 16:9 ekrānam
#PLATUMU_VAJAG=2427
#PLATUMU_VAJAG=1920
PLATUMU_VAJAG=1280
#PLATUMU_VAJAG=960
## Vai melnās malas abpus attēlam ir vienāda platuma
#CENTREET=T
#MALUKRAASA=#000000
MALUKRAASA=navy
#### Beidzas maināmie lielumi ##########################################
PLACINAAJUMS=$(bc <<< "scale=4; $PLATUMU_VAJAG/$AUGSTUMU_VAJAG")
mkdir -p $KUR_LIKT || exit 1
mkdir -p $TMP_DIR || exit 1
for ATTELS in $ATTELI; do
AUGSTUMS=$(identify -format '%h' $ATTELS)
PLATUMS=$(identify -format '%w' $ATTELS)
PLACINAAJUMS_ATT=$(bc <<< "scale=4; $PLATUMS/$AUGSTUMS")
# Ja attēls par šauru
if [ 1 -eq "$(echo "$PLACINAAJUMS > $PLACINAAJUMS_ATT" | bc)" ]; then
if [ $AUGSTUMS -ne $AUGSTUMU_VAJAG ]; then
gm convert $ATTELS -resize x$AUGSTUMU_VAJAG $TMP_DIR/$ATTELS
ATTELS_KURU=$TMP_DIR/$ATTELS
else
ATTELS_KURU=$ATTELS
fi
PLATUMS=$(identify -format '%w' $ATTELS_KURU)
STARPIIBA=$(($PLATUMU_VAJAG-$PLATUMS))
if [ "$CENTREET" = "T" ]; then
MALA1=$(($STARPIIBA/2))
else
MALA1=$(($RANDOM%$STARPIIBA))
fi
MALA2=$(($STARPIIBA-$MALA1))
if [ $MALA1 -lt $MALA2 ]; then
MALA=$MALA2
ATKAPE=$(($MALA2-$MALA1))
else
MALA=$MALA1
ATKAPE=0
fi
echo "$ATTELS_KURU --- $KUR_LIKT/$ATTELS"
gm convert $ATTELS_KURU -bordercolor "$MALUKRAASA" -border $(echo $MALA)x0 - | \
gm convert - -gravity NorthEast -crop $(echo $PLATUMU_VAJAG)x$AUGSTUMU_VAJAG+$ATKAPE+0 $KUR_LIKT/$ATTELS
# Ja attēls par platu
else
if [ $PLATUMS -ne $PLATUMU_VAJAG ]; then
gm convert $ATTELS -resize $PLATUMU_VAJAG $TMP_DIR/$ATTELS
ATTELS_KURU=$TMP_DIR/$ATTELS
else
ATTELS_KURU=$ATTELS
fi
AUGSTUMS=$(identify -format '%h' $ATTELS_KURU)
STARPIIBA=$(($AUGSTUMU_VAJAG-$AUGSTUMS))
if [ "$CENTREET" = "T" ]; then
MALA1=$(($STARPIIBA/2))
else
MALA1=$(($RANDOM%$STARPIIBA))
fi
MALA2=$(($STARPIIBA-$MALA1))
if [ $MALA1 -lt $MALA2 ]; then
MALA=$MALA2
ATKAPE=$(($MALA2-$MALA1))
else
MALA=$MALA1
ATKAPE=0
fi
echo "$ATTELS_KURU --- $KUR_LIKT/$ATTELS"
gm convert $ATTELS_KURU -bordercolor "$MALUKRAASA" -border 0x$MALA - | \
gm convert - -gravity NorthEast -crop $(echo $PLATUMU_VAJAG)x$AUGSTUMU_VAJAG+0+$ATKAPE $KUR_LIKT/$ATTELS
fi
done
Piemērs, kā salipināt kopā attēlus un izveidot viedeodatni.
# Ar Imagination (http://imagination.sourceforge.net/), vai ko tamlīdzīgu,
# sataisa četrus rādāmgabalus (VOV DVD 1280×720).
# Šim piemēram izveidotas šādas datnes
# Video_01.vob
# Video_02.vob
# Video_03.vob
# Video_04.vob
#
# Tad lipinām visu kopā.
# (-preset nosaka ātrumu un gala rezultāta izmēru – jo ātrāk, jo fails lielāks.
# Pieejamās vērtības:
# ultrafast, superfast, veryfast, faster, fast, medium (default), slow and veryslow.)
ffmpeg -i Video_01.vob -i Video_02.vob -i Video_03.vob -i Video_04.vob \
-filter_complex " \
[0:v]scale=960:540[sa]; \
[1:v]scale=960:540[sb]; \
[2:v]scale=960:540[sc]; \
[3:v]scale=960:540[sd]; \
[sa]setpts=PTS-STARTPTS, pad=iw*2:ih*2[va]; \
[sb]setpts=PTS-STARTPTS[vb]; \
[sc]setpts=PTS-STARTPTS[vc]; \
[sd]setpts=PTS-STARTPTS[vd]; \
[va][vb]overlay=w[ve]; \
[ve][vc]overlay=0:h[vf]; \
[vf][vd]overlay=w:h \
" \
-c:v libx264 -crf 23 -preset slow \
LATA_20180201_4D.avi
|